﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIMCFachadaNegocio;
using SIMCObjetoNegocio;

namespace SIMCPresenter
{
    public interface ISeguridadModificarPortafolioView : ISeguridadView
    {
        bool PuedeVerPermisos { set; }
        bool EsUsuarioInterno { get; }
    }

    public class ModificarPortafolioPresenter : PresenterSeguridadBase
    {
        private ISeguridadModificarPortafolioView mView;
        private ISeguridadPermisosPortafolioView m_ViewPermisos;
        private ISeguridadDetallePortafolioView m_ViewDetalle;        
        
        public ModificarPortafolioPresenter(ISeguridadModificarPortafolioView p_View, ISeguridadDetallePortafolioView p_ViewDetalle,
            ISeguridadPermisosPortafolioView p_ViewPermisos)
            : base (p_View)
        {
            mView = p_View;
            m_ViewDetalle = p_ViewDetalle;
            m_ViewPermisos = p_ViewPermisos;
            IniciarSeguridad();
        }

        protected override void EvaluarPermisos()
        {
            if (mView.EsUsuarioInterno)
            {
                mView.PuedeVerPermisos =
                    PermitirEvento(SegDiccionario.e_WebPortafolio_ConsultarPermisos, SegDiccionario.d_WebPortafolio_CosultarPermisosPortafolio);

                m_ViewDetalle.PuedeVerAsociaciones =
                    PermitirEvento(SegDiccionario.e_WebPortafolio_ConsultarAsociaciones, SegDiccionario.d_WebPortafolio_ConsultarAsociaciones);

                m_ViewPermisos.PuedeInactivar = PermitirEvento(SegDiccionario.e_Inactivar, SegDiccionario.d_WebPortafolio_Inactivar);
                m_ViewPermisos.PuedeAprobar = PermitirEvento(SegDiccionario.e_Aprobar, SegDiccionario.d_WebPortafolio_Aprobar);
                m_ViewPermisos.PuedeRechazar = PermitirEvento(SegDiccionario.e_Rechazar, SegDiccionario.d_WebPortafolio_Rechazar);
                m_ViewPermisos.PuedeRenovar = PermitirEvento(SegDiccionario.e_Renovar, SegDiccionario.d_WebPortafolio_Renovar);
                m_ViewPermisos.PuedeSolicitar = PermitirEvento(SegDiccionario.e_Solicitar, SegDiccionario.d_WebPortafolio_Solicitar);
            }
            else
            {
                mView.PuedeVerPermisos = true;

                m_ViewDetalle.PuedeVerAsociaciones = false;
                m_ViewPermisos.PuedeAprobar = false;
                m_ViewPermisos.PuedeInactivar = false;
                m_ViewPermisos.PuedeRechazar = false;
                m_ViewPermisos.PuedeRenovar = false;
                m_ViewPermisos.PuedeSolicitar = false;
            }
        }                
    }
}
